package cliquevuado

import java.util.Date

class Leilao {
	private String nome
	private String imagem
	private Date dataDeInicio
	private Date dataDeArremate
	private float tempoDoCronometro
	private float precoDoClique
	private float precoFinal
	private float precoInicial
	private Produto produto
	private Categoria categoria
	private Usuario usuario
	private Pagamento pagamento

	public static ArrayList<Usuario> getLeiloesbyUsuario(Usuario usuario){
		def leiloes = Leilao.list()
		def leiloesByUsuario = new ArrayList<Usuario>()
		for(int i=0; i<leiloesByUsuario.size();i++ ){
			if(leiloes.get(i).getUsuario() == usuario){
				leiloesByUsuario.add(leiloes.get(i))
			}
		}
		return leiloesByUsuario		
	}
	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public void setImagem(String imagem){
		this.imagem = imagem
	}

	public String getImagem(){
		return imagem
	}

	public Date getDataDeInicio() {
		return dataDeInicio;
	}

	public void setDataDeInicio(Date dataDeInicio) {
		this.dataDeInicio = dataDeInicio;
	}

	public Date getDataDeArremate() {

		return dataDeArremate;
	}

	public void setDataDeArremate(Date dataDeArremate) {
		this.dataDeArremate = dataDeArremate;
	}

	public float getTempoDoCronometro() {
		return tempoDoCronometro;
	}

	public void setTempoDoCronometro(float tempoDoCronometro) {
		this.tempoDoCronometro = tempoDoCronometro;
	}

	public float getPrecoDoClique() {
		return precoDoClique;
	}

	public void setPrecoDoClique(float precoDoClique) {
		this.precoDoClique = precoDoClique;
	}

	public float getPrecoInicial() {
		return precoInicial;
	}

	public void setPrecoInicial(float precoInicial) {
		this.precoInicial = precoInicial;
	}

	public float getPrecoFinal() {
		return precoFinal;
	}

	public void setPrecoFinal(float precoFinal) {
		this.precoFinal = precoFinal;
	}

	public Produto getProduto(){
		if(produto == null){
			produto = new Produto()
		}
		return produto
	}

	public void setProduto(Produto produto){
		this.produto = produto
	}

	public Categoria getCategoria(){
		if(categoria == null){
			categoria = new Categoria()
		}
		return categoria
	}

	public void setCategoria(Categoria categoria){
		this.categoria = categoria
	}

	public Usuario getUsuario(){
		if(usuario == null){
			usuario = Usuario.getAdministrador()
		}
		return usuario
	}

	public void setUsuario(Usuario usuario){
		this.usuario = usuario
	}

	public Pagamento getPagamento(){

		if(pagamento == null){
			pagamento = Pagamento.getPagamentoVazio()
		}
		return pagamento
	}

	public void setPagamento(Pagamento pagamento){
		if(pagamento == null){
			pagamento = Pagamento.getPagamentoVazio()
		}
		this.pagamento = pagamento
	}

	static constraints = {
		nome(unique:true)

		dataDeInicio(validator: { val, obj ->
			def date = new Date()
			date.setTime(new Date().getTime()+15778800000)
			val?.before(date)
		})
		dataDeInicio(validator: { val, obj ->
			val?.after(new Date())
		})
		dataDeArremate(nullable: true)
		tempoDoCronometro(min:new Float(30), nullable:false)
		precoDoClique(min:new Float(0),nullable:false,blank:false)
		precoInicial(min:new Float(0),nullable:false,blank:false)
		usuario (nullable: true)
		pagamento (nullable: true)
	}
}
